package com.ssy.lingxi.search.entity.channel;

import com.ssy.lingxi.search.entity.CommodityShop;
import com.ssy.lingxi.search.entity.CommoditySoldCount;
import com.ssy.lingxi.search.entity.Logistics;
import lombok.Data;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.util.List;

/**
 * 渠道会员
 * @author jw.chen
 * @version 2.0.0
 * @date 2020/7/13
 */
@Data
public class ChannelCommodityMember implements Serializable {
    private static final long serialVersionUID = -4098338663639165741L;
    /**
     * 主键id
     */
    private Long id;

    /**
     * 渠道商品id
     */
    private Long channelCommodityId;

    /**
     * 渠道商品会员id(同一个渠道商品发布给多个会员)
     */
    private Long channelCommodityMemberId;

    /**
     * 渠道商品状态: 5-上架, 6-下架, 7-未上架
     */
    private Integer status;

    /**
     * 发布渠道商品的会员id
     */
    @Field(type = FieldType.Keyword)
    private Long channelMemberId;

    /**
     * 发布渠道商品的会员名称
     */
    private String channelMemberName;

    /**
     * 发布渠道商品的会员角色id
     */
    private Long channelMemberRoleId;

    /**
     * 发布渠道商品的会员角色名称
     */
    private String channelMemberRoleName;

    /**
     * 商品来源：1-上级渠道, 2-渠道自有
     */
    private Integer source;

    /**
     * 下级渠道会员id
     */
    private Long memberId;

    /**
     * 下级渠道会员名称
     */
    private String memberName;

    /**
     * 下级渠道会员角色id
     */
    private Long memberRoleId;

    /**
     * 下级渠道会员角色名称
     */
    private String memberRoleName;

    /**
     * 税率
     */
    private Double taxRate = 0d;

    /**
     * 是否允许使用会员折扣价购买
     */
    private Boolean isMemberPrice;

    /**
     * 最小(价格/积分)
     */
    @Field(type = FieldType.Double)
    private Double min;

    /**
     * 最大(价格/积分)
     */
    @Field(type = FieldType.Double)
    private Double max;

    /**
     * 渠道商品单价
     */
    private List<ChannelUnitPricePic> unitPricePicList;

    /**
     * 渠道会员商品发布商城
     */
    @Field(type = FieldType.Object)
    private List<CommodityShop> shopList;

    /**
     * 上架时间
     */
    @Field(type = FieldType.Long)
    private Long publishTime;

    /**
     * 物流信息
     */
    private Logistics logistics;

    /**
     * 店铺id
     */
    private Long storeId;

    /**
     * 渠道信用积分
     */
    @Field(type = FieldType.Integer)
    private int creditScore;

    /**
     * 已售数量(渠道商品)
     */
    private List<CommoditySoldCount> commoditySoldCountList;
}
